package com.iwhalecloud.bss.kite.cucc.client.vo.scene;

import com.iwhalecloud.bss.kite.client.vo.scene.OfferInstModuleVO;
import com.iwhalecloud.bss.kite.client.vo.scene.ProductModuleVO;
import com.iwhalecloud.bss.kite.client.vo.scene.SceneVO;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SceneProductModuleVO extends SceneVO {

    /**
     *
     */
    private static final long serialVersionUID = -7307037869278656677L;

    @ApiModelProperty("套餐组件")
    private OfferInstModuleVO offer;

    @ApiModelProperty("产品组件")
    private List<ProductModuleVO> product;

    @ApiModelProperty("成员产品组件")
    private CuccMemProdModuleVO memberProduct;

    @ApiModelProperty("资费可选包（非必选和默选，key为销售品实例ID）")
    private Map<String, OptionalAdditionalOfferModuleVO> additionalOffers;

    @ApiModelProperty("商品明细")
    private OfferRelModuleVO offerRelModuleVO;

    @ApiModelProperty("附加产品")
    private GiftOfferInstModuleVO giftOfferInstModuleVO;

    @ApiModelProperty("延期信息")
    private PostponeInfoModuleVO postponeInfoModuleVO;


    public OfferInstModuleVO getOffer() {
        if (offer == null) {
            offer = new OfferInstModuleVO();
        }
        return offer;
    }

    public void setOffer(OfferInstModuleVO offer) {
        this.offer = offer;
    }

    public List<ProductModuleVO> getProduct() {
        return product;
    }

    public void setProduct(List<ProductModuleVO> product) {
        this.product = product;
    }

    public CuccMemProdModuleVO getMemberProduct() {
        return memberProduct;
    }

    public void setMemberProduct(CuccMemProdModuleVO memberProduct) {
        this.memberProduct = memberProduct;
    }

    public Map<String, OptionalAdditionalOfferModuleVO> getAdditionalOffers() {
        return additionalOffers;
    }

    public void setAdditionalOffers(Map<String, OptionalAdditionalOfferModuleVO> additionalOffers) {
        this.additionalOffers = additionalOffers;
    }

    public OfferRelModuleVO getOfferRelModuleVO() {
        return offerRelModuleVO;
    }

    public void setOfferRelModuleVO(OfferRelModuleVO offerRelModuleVO) {
        this.offerRelModuleVO = offerRelModuleVO;
    }

    public GiftOfferInstModuleVO getGiftOfferInstModuleVO() {
        return giftOfferInstModuleVO;
    }

    public void setGiftOfferInstModuleVO(GiftOfferInstModuleVO giftOfferInstModuleVO) {
        this.giftOfferInstModuleVO = giftOfferInstModuleVO;
    }

    public PostponeInfoModuleVO getPostponeInfoModuleVO() {
        return postponeInfoModuleVO;
    }

    public void setPostponeInfoModuleVO(PostponeInfoModuleVO postponeInfoModuleVO) {
        this.postponeInfoModuleVO = postponeInfoModuleVO;
    }

    public SceneProductModuleVO() {
        offer = new OfferInstModuleVO();
        product = new ArrayList<>();
        additionalOffers = new HashMap<>();
        offerRelModuleVO = new OfferRelModuleVO();
        giftOfferInstModuleVO = new GiftOfferInstModuleVO();
        postponeInfoModuleVO = new PostponeInfoModuleVO();
    }
}
